'use strict';

/* 
    @配置项
    以下配置项内容都写到单引号里面 例如：
    var _phone = '10086';
*/
var _token = ''; /* 蘑菇丁app抓包获得的token 如果不会抓包，不要填 */
var _phone = ''; /* 蘑菇丁账号也就是手机号 */
var _password = ''; /* 蘑菇丁密码 */
var _country = '中国'; /* 国家 例如：中国 */
var _address = '河北省 · 石家庄市 · xx写字楼'; /* 定位地址 例如：河北省 · 石家庄市 · xx写字楼 */
var _city = '石家庄市'; /* 城市名 例如：石家庄市 */
var _latitude = '34.412409'; /* 定位纬度 例如：666.666 注明：不知道经纬度的去百度地图就能看到任意地方的经纬度 */
var _longitude = '115.652723'; /* 定位经度 例如：666.666 注明：不知道经纬度的去百度地图就能看到任意地方的经纬度 */

/* 配置项结束，上面的都填完了就可以部署了 */

var axios = require('axios');
axios.defaults.baseURL = 'https://api.moguding.net:9000';
axios.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8';
async function login() {
    if (_token) {
        axios.defaults.headers.common['Authorization'] = _token;
        return true;
    }
    var url = 'https://api.moguding.net:9000/session/user/v1/login';
    var data = {
        phone: _phone,
        password: _password,
        loginType: 'android'
    }

    var res = await axios.post(url, data);
    var msg = res.data.msg;
    var code = res.data.code;
    var flag = false;
    var token = '';
    if (code == 200) {
        token = res.data.data.token;
        axios.defaults.headers.common['Authorization'] = token;
        flag = true;
    } else {
        flag = false;
    }
    return flag;
}

async function getPlanId() {
    var data = {
        paramsType: 'student'
    }
    var url = '/practice/plan/v1/getPlanByStu';
    var res = await axios.post(url, data);
    var planId = res.data.data[0].planId;
    return planId;
}

async function send(planId) {
    var url = 'https://api.moguding.net:9000/attendence/clock/v1/save';
    var data = {
        country: _country,
        address: _address,
        city: _city,
        latitude: _latitude,
        description: '',
        type: 'START',
        device: 'Android',
        longitude: _longitude,
        planId: planId
    }

    var res = await axios.post(url, data);
    var msg = res.data.msg;
    return msg;

}
exports.main_handler = async (event, context) => {
    var flag = await login();
    if (flag) {
        var planId = await getPlanId();
        var msg = await send(planId);
        if (msg == "success") {
            event.status = true;
            event.msg = '签到成功';
        } else {
            event.status = false;
            event.msg = msg;
        }

    } else {
        event.status = false;
        event.msg = '登陆失败';
    }
    return event;
};